<?
	/* Se asegura que el archivo es incluido por el index */
	defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
		$this->oTmpObject = new Actividad_frm( $this );

	class Actividad_frm extends Frm
	{
	function setValue ( $ncActividad )
		{
			$cSql = "SELECT  ncActividad, ncRecorrido, ncTipoAgenda, ncEspecial, cPaginaWeb,cTelefono, cEmail, ncCategoriaActividad,  ncEstablecimiento,  ncOrganizacion, cdActividad,  cDescripcion, cVolanta, cEntrada, dSugerida
				FROM gtActividad
				WHERE ncActividad = '$ncActividad' ";
			$aDatos = $this->oDatabase->getArray($cSql);
			$this->setFieldsArray ( $aDatos );
			$cSql = "SELECT dDesde, dHasta, nTipoHorario, cDias, nHoraDesde, nHoraHasta FROM gtActividadTiempo WHERE ncActividad = '$ncActividad' ";
			$aHorarios= $this->oDatabase->getMatrix($cSql);
			foreach( $aHorarios as $aHorario )
			{
				for ( $nDia = 0, $nIndex = 0; $nIndex <= 7 ; $nIndex++ )
					if ( $aHorario['cDias']{$nIndex} == '1' ) $nDia +=  pow(2 , 7- $nIndex) ;
				$cHorario = $nDia . '|'  . $aHorario['nTipoHorario'] . '|' .  $aHorario['nHoraDesde'] . '|' . $aHorario['nHoraHasta'] ;
				$cdHorario = $this->aFields['cHorario']->oInput->getDescription( $cHorario );
				$this->aFields['cHorario']->addOption( $cHorario, $cdHorario ) ;
			}
			$this->aFields['Periodo']->oInputDesde->setValue( $aHorarios[0]['dDesde'] );
			$this->aFields['Periodo']->oInputHasta->setValue( $aHorarios[0]['dHasta'] );
		}
	function Actividad_frm( &$oModule )
		{
			$this->Frm( $oModule );
			$this->setDefaultSearchField( 'cdActividad' );
			//Crea los Objetos de los campos de edicion
			$this->aFields['ncActividad']				= new Input("Codigo","ncActividad", '', false, true); 
			$this->aFields['ncTipoAgenda']			= new InputList( "Agenda", "ncTipoAgenda" );
			$this->aFields['ncRecorrido']			= new InputList( "Recorrido", "ncRecorrido" );
			$this->aFields['ncEspecial']					= new InputList( "Especial", "ncEspecial" );
			$this->aFields['ncCategoriaActividad']	= new InputList( "Categoria", "ncCategoriaActividad" );
			$this->aFields['ncEstablecimiento']		= new InputLookUp( "Establecimiento", "ncEstablecimiento" );
			$this->aFields['ncOrganizacion']			= new InputLookUp( "Organizacion", "ncOrganizacion" );
			$this->aFields['cdActividad']				= new InputText( "Titulo", "cdActividad" );
			$this->aFields['cDescripcion']				= new InputText( "Contenido", "cDescripcion" );
			$this->aFields['cPaginaWeb']				= new InputText( "Web", "cPaginaWeb" );
			$this->aFields['cTelefono']					= new InputText( "Telefono", "cTelefono" );
			$this->aFields['cEmail']						= new InputText( "Email", "cEmail" );
			$this->aFields['cVolanta']					= new InputText( "Volanta", "cVolanta" );
			$this->aFields['dSugerida']					= new InputDate( "Sugerida", "dSugerida" );
			$this->aFields['Periodo'] 					= new InputDatePeriod( "Periodo", "dDesde", "dHasta" ) ;
			$this->aFields['cEntrada']					= createEntrada();
			$this->aFields['cHorario']						= createHorario();
			$this->aFields['aRotulo']					= new InputCheck( "Tags", "aRotulo" );
			
			$this->setMultiLanguage();
		}
	function setLevel( $nLevel)
		{
			switch ( $nLevel )
			{
				case 2:
					if ( $this->oModule->getAction() == AGREGAR_ACTIVIDAD_PORTAL || $this->oModule->getAction() == DUPLICAR_ACTIVIDAD_PORTAL )
						$this->aInput = array ('ncActividad','ncTipoAgenda', 'ncCategoriaActividad','ncEstablecimiento','cdActividad', 'cPaginaWeb', 'cTelefono', 'cEmail', 'cEntrada', 'dSugerida', 'Periodo', 'cHorario', 'cDescripcion', 'cVolanta', 'ncEspecial', 'aRotulo', 'ncRecorrido', 'ncOrganizacion' );
					else
						$this->aInput = array ('ncActividad','ncTipoAgenda', 'ncCategoriaActividad','ncEstablecimiento','cdActividad', 'cPaginaWeb', 'cTelefono', 'cEmail', 'cEntrada', 'dSugerida', 'cDescripcion', 'cVolanta', 'ncEspecial', 'aRotulo', 'ncRecorrido', 'ncOrganizacion'  );					
					break;
			}
		}
	function initializeForm()
		{
			// Si viene el Ubicacion hace el retrieve
				if ( $this->isRetrievable() && $this->aFields['ncActividad']->getValue() )
				{
					$this->setValue( $this->aFields['ncActividad']->getValue() );
				}
			// Configura el Titulo
				$this->setLabel( "Actividad" );
			return true;
		}
	function initializeField( $cField , &$oField )
		{
			switch ( $cField )
			{
					case 'ncRecorrido':
						$cSql = "SELECT ncRecorrido, cdRecorrido FROM gtRecorrido";
						$oField->setLanguage('es');
						$oField->setMatrix($this->oDatabase->getMatrix($cSql));
						$oField->setOnChangeAutoSubmit($this);
					break;
					case 'ncTipoAgenda':
						$cSql = "SELECT ncTipoAgenda, cdTipoAgenda FROM gcTipoAgenda";
						$oField->setMatrix($this->oDatabase->getMatrix($cSql));
						//$oField->setMandatory($this->isMandatory);
						$oField->setOnChangeAutoSubmit($this);
					break;
					case 'ncEspecial':
						$cSql = "SELECT ncEspecial, cdEspecial FROM gtEspecial";
						$oField->setMatrix($this->oDatabase->getMatrix($cSql));
						$oField->setForm( $this );
						$oField->addActionArray( 2, $this->oModule->getActionArray( AGREGAR_ESPECIAL) );
						$oField->addActionArray( 3, $this->oModule->getActionArray( MODIFICAR_ESPECIAL), '' );
					break;
					case 'ncCategoriaActividad':
						if ( $this->aFields['ncTipoAgenda']->getValue() )
						{
							$oField->setLanguage('es');
							$cSql = "SELECT ncCategoriaActividad, cdCategoriaActividad FROM gcCategoriaActividad WHERE ncTipoAgenda=" . $this->aFields['ncTipoAgenda']->getValue();
							$oField->setMatrix($this->oDatabase->getMatrix($cSql));
							$oField->setMandatory($this->isMandatory);
						} else $oField->setHidden();
					break;
				case 'ncEstablecimiento':
					//$oField->setMandatory( $this->isMandatory() );
					$oField->setForm( $this );
					initializeEstablecimiento( $oField );
				break;
				case 'ncOrganizacion':
					//$oField->setMandatory( $this->isMandatory() );
					$oField->setForm( $this );
					initializeOrganizacion( $oField );
				break;
				case 'cdActividad':
					$oField->setMultiLanguage();
				break;
				case 'cDescripcion':
					$oField->setMultiLanguage();
					$oField->setLength(4096);
					//$oField->setEditor();
				break;
				case 'cVolanta':
					$oField->setMultiLanguage();
					$oField->setLength(4096);
					//$oField->setEditor();
				break;
				case 'cEntrada':
					$oField->setForm( $this );
					$oField->setLabel( 'Entrada');
				break;
				case 'cHorario':
					$oField->setForm( $this );
					$oField->setLabel( 'Horarios');
				break;
				case 'aRotulo':
					if ($this->aFields['ncActividad']->getValue()  )
					{
						$cSql = "SELECT Par.ncRotulo, Par.cdRotulo, Tab.ncActividad
											FROM gtRotuloActividad as Par
												LEFT JOIN gtActividadRotulo as Tab
													ON Par.ncRotulo = Tab.ncRotulo
													AND Tab.ncActividad = " . $this->aFields['ncActividad']->getValue()  . "
											ORDER BY Par.cdRotulo";
					} else
					{
						$cSql = "SELECT ncRotulo, cdRotulo
											FROM gtRotuloActividad";
					}
					$oField->setMatrix( $this->oDatabase->getMatrix( $cSql ) );
					$oField->setMultiple( true );
				break;
			}
 		}
	}
?>